# -*- coding: utf-8 -*-
from django import forms
from django.forms.util import ErrorList

from django.db.models import Max

from gratuidade.models import PessoaGratuidade
from comum import choices
from comum.forms import PessoaForm
from djtools.formwidgets import BRCpfWidget

##############
# GRATUIDADE #
##############

class PessoaGratuidadeForm(PessoaForm):
    
    class Meta:
        model = PessoaGratuidade
        
    def save(self, commit=True, force_insert=False, force_update=False):
        if self.instance.pk is None:
            last_val = PessoaGratuidade.objects.aggregate(Max('numero_carteira'))
            self.instance.numero_carteira = last_val['numero_carteira__max'] + 1
        return super(PessoaGratuidadeForm, self).save(commit)
        
    tipo = forms.ChoiceField(label=u'Tipo de Pessoa', widget=forms.Select(), choices=choices.TIPO_PESSOA)
    situacao = forms.ChoiceField(label=u'Situação', widget=forms.Select(), choices=choices.SITUACAO)
    cpf = forms.CharField(label=u'CPF', widget=BRCpfWidget)

    
#    import pdb; pdb.set_trace()
#        if self.claned_data['telefone_set-0-telefone'] == '':
#            self._errors['telefone_set-0-telefone'] = ErrorList([u'Este campo é obrigatório.'])
#        
#        elif self.data['telefone_set-0-tipo'] == '':
#            self._errors['telefone_set-0-tipo'] = ErrorList([u'Este campo é obrigatório.'])
#        
#        elif self.data['endereco_set-0-cep'] == '':
#            self._errors['endereco_set-0-cep'] = ErrorList([u'Este campo é obrigatório.'])
#        
#        elif self.data['endereco_set-0-logradouro'] == '':
#            self._errors['endereco_set-0-logradouro'] = ErrorList([u'Este campo é obrigatório.'])
#        return self.cleaned_data
#    
#    def clean(self):
#        import pdb; pdb.set_trace()
#        if self.data['telefone_set-0-telefone'] == '':
#            self._errors['telefone_set-__prefix__-telefone'] = ErrorList([u'Este campo é obrigatório.'])
#        elif self.data['telefone_set-0-tipo'] == '':
#            self._errors['telefone_set-__prefix__-tipo'] = ErrorList([u'Este campo é obrigatório.'])
#        return self.cleaned_data